This specification relates to virtual machines.
A virtual machine is a software-based abstraction of a physical computer system. In general, any computer program that can be executed on a physical computer system can be executed in a virtual machine using virtualization software. Virtualization software is software that is logically interposed and interfaces with a virtual machine and a physical computer system. Each virtual machine is configured to execute an operating system (OS), referred to herein as a guest OS, and applications. A physical computer system, referred to herein as a host machine, can execute one or more virtual machines. A host system may include one or more host machines, e.g., servers.
A virtual machine can be accessed remotely through a network connection. For example, it is possible to use a remote client to access a virtual machine remotely. A remote client is a program that communicates user interface information with a remote system. Generally, the user interface information includes display data, which is received from the remote system and displayed locally to the user on a client device, and the remote client sends inputs generated by the user to the remote system. In this way, applications executing remotely from the client device can be accessed and interacted with by the user.